import DebugStub.StubServerResponseControl;
import MediciADistanza.Control.User.UtenteControl;
import MediciADistanza.Control.User.SpecificUserCTRL.MedicoControl;
import MediciADistanza.Control.User.SpecificUserCTRL.OperatoreCOControl;
import MediciADistanza.Control.User.SpecificUserCTRL.OperatoreSTControl;
import MediciADistanza.Control.ErroreControl;
import MediciADistanza.Control.User.SpecificUserCTRL.PazienteControl;

/**
 * 
 * @author Andrea Iann&igrave;
 *
 */
public class MainClass {
	/**
	 * Control iniziale dell'applicazione
	 */
	private static UtenteControl control;
	/**
	 * Control errore d'avvio
	 */
	private static ErroreControl erroreAvvio;
	/**
	 * Punto di entrata del software
	 * 
	 * @param args	<div><p>Usare /p per avviare il client paziente</p><p>Usare /m per avviare il client medico</p><p>Usare /st per avviare il client ST</p><p>Usare /co per avviare il client CO</p></div>
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		if (args.length == 0)
		{
			args = new String[1];
			args[0] = "esci";
		}
		switch (args[0]) {
		case "/p":
			control =  new PazienteControl();
			break;
		case "/m":
			control = new MedicoControl();
			break;
		case "/st":
			control = new OperatoreSTControl();
			break;
		case "/co":
			control = new OperatoreCOControl();
			break;
		default:
			erroreAvvio =  new ErroreControl();
			erroreAvvio.setDescrizione("Avvio Non corretto", "<html><h1>Argomenti di avvio non corretti</h1>" +
					"<p>Usare /p per avviare il client paziente</p>" +
					"<p>Usare /m per avviare il client medico</p></html>");
		}
		
		if(args.length == 2)
			if(args[1].equals("/s"))
				new StubServerResponseControl(control);
	}

}
